草庐IT

php array_map不返回结果数组

全部标签

javascript - 从任意评估代码中获取返回值

我有一个要求,即用户可以提供任意语句,这些语句可以存储在一个函数中,稍后调用以获得返回值。一个简单的例子是userInput可能是varx=10;x;我会通过以下方式存储它varcallback=function(){returneval(userInput);}然后运行​​callback()按预期返回10。但是,我还需要用显式返回语句来支持这种情况,即userInput可能是varx=10;returnx;在这种情况下,上面的eval方法将失败并返回SyntaxError:returnnotinfunction。相反,我可以将回调存储为varcallback=newFunction

javascript - 如何在 Javascript 中预分配密集数组?

当使用newArray(size)构造函数时,如果size不是常量,JS似乎会在某些地方创建一个稀疏数组浏览器(至少在Chrome中),导致访问速度比使用默认ctor慢得多,如图所示here.这与我想要的完全相反:我预先分配了一个给定大小的数组以避免dynamicre-allocation从而提高性能。有什么办法可以实现这个目标吗?请注意,这个问题不是关于newArray(size)ctor的歧义。我发布了关于那个的推荐here. 最佳答案 100000是超过预分配阈值1,99999仍在预分配,如您所见,速度要快得多http://j

javascript - 为什么 Date#getHours() 返回小时 + 1?

This是我的代码:varfeedDataTimestamp=newDate("2014-01-14T00:04:40+0000").getTime();varparsedDate=newDate(+feedDataTimestamp);alert(parsedDate.getHours());但它应该打印0,而不是1:时间是00:04:40 最佳答案 因为您(根据您的Stackoverflow配置文件)在意大利,所以您的时区是UTC+1。您输入的时间戳是UTC+0。parsedDate将采用本地时间。使用thegetUTCHour

javascript - 如何在javascript中对类型数组进行排序?

例如我输入了这样的数组:vara=newInt32Array([3,8,6,1,6,9]);当我尝试调用a.sort()时,它不起作用。排序类型数组的最佳方法是什么?性能怎么样,我们可以比常规数组更快地对类型化数组进行排序吗? 最佳答案 JavaScript数组方法的定义方式使其适用于任何类数组对象,而不仅仅是Array的实际实例。所以你可以使用:Array.prototype.sort.call(a,function(a,b){returna-b;});自定义回调是必要的,因为JS默认按字典顺序对值进行排序。另见Howtosort

javascript - Regex.prototype.exec 在搜索的第二次迭代中返回 null

这个问题在这里已经有了答案:WhydoesaRegExpwithglobalflaggivewrongresults?(7个答案)关闭6年前。用例我想在一个字符串中搜索多个匹配项。每个匹配最终都链接到对象数组中的对象属性。找到匹配项后,该匹配项将替换为对象中的另一个属性。问题是代码将始终在第二个匹配项上返回null。测试用例这是我正在使用的测试用例。为了简化问题,我只是将所有匹配项替换为数字5,但请注意,最终代码会将匹配项替换为一个变量值。测试代码下面是我用来测试和调试问题的代码。有趣的是,如果我更改varstr='5+QUESTION_2',QUESTION_2会成功替换为5。本质上

javascript - 在第一个位置插入一维数组中的元素

我在一次Javascript面试中被问到这个问题,遗憾的是,我想不出比当时显而易见的答案更好的答案:创建一个新数组,为第一个位置分配新值并复制其余部分。就时间和空间复杂度而言,在第一个位置插入一维数组中的元素的最佳算法是什么?编辑:没有像unshift()、splice()、push()这样的内置函数,所有这些都将被使用。 最佳答案 如果任务只是简单地在原始一维数组的头部插入一个元素,那么我认为您唯一的选择几乎就是这种O(N)方法:for(vari=ary.length;i>0;i--){ary[i]=ary[i-1];}ary[0

javascript - 在对象数组javascript中查找重复项

这个问题在这里已经有了答案:Howtoremoveallduplicatesfromanarrayofobjects?(76个答案)关闭8年前。我有一个对象数组,如下所示:{value:20,color:'F88C00'},{value:40,color:'D8605F'},{value:20,color:'72C380'},{value:20,color:'2C7282'},{value:20,color:'72C380'}我想使用javascript/jquery循环遍历它们以检查颜色列中是否有重复项,如果有重复项,这里'72C380'出现两次。那么应该只有一个条目,但它们的值应该

javascript - 为什么匹配函数只返回第一个字母?

如果元字符?与前面的元素匹配零次或一次,则为什么"ab".match(/a?/)返回["a"],但是"ab".match(/b?/)返回[""]? 最佳答案 因为那是第一场比赛。正则表达式首先尝试匹配位置0,其中正则表达式#1匹配a,正则表达式#2匹配空字符串。然后它尝试匹配位置1,其中regex#1匹配空字符串,regex#2匹配字母b。最后,它尝试在位置3进行匹配,其中两个正则表达式都匹配空字符串。将返回的匹配项与全局标志进行比较:>"ab".match(/a?/)["a"]>"ab".match(/a?/g)["a","","

javascript - Typeahead 将结果显示为未定义

我正在尝试使用typeahead来显示谷歌建议。Ajax调用工作正常并且数据正确返回:在执行returnprocess(data);之前数据包含以“w”开头的字符串数组。data=["walmart","weather","wellsfargo","worldstarhiphop","walgreens","wikipedia","whitepages","worldcup","webmd","weatherradar"]但是显示的建议显示“未定义”而不是真实的单词。知道我在这里缺少什么吗?谢谢。$('.typeahead').typeahead({hint:true,highligh

javascript - array.forEach.call 与 array.map.call

要在JavaScript中遍历querySelectorAll的结果,以下哪一项比另一项更可取?[].forEach.call(document.querySelectorAll('div'){//dosomething})[].map.call(document.querySelectorAll('div'){//dosomething})本质上,我想知道这些是否都实现了提供对从querySelectorAll返回的每个dom元素的访问的相同结果。如果是这样,人们可能想要使用一个而不是另一个的原因是什么? 最佳答案 forEach